b9269da7630de142a3474db0ae530c588c3ff26c,test/org/pentaho/di/trans/steps/regexeval/RegexEvalTest.java,RegexEvalTest,testRegexEval3,#,192

Before Change



    public void testRegexEval3() throws Exception
    {
        TransMeta transMeta = new TransMeta();
        transMeta.setName("regexeval2");
        
        RegexEvalMeta regexEvalMeta = new RegexEvalMeta();
        
        regexEvalMeta.setScript("((a)|([A1]))([B2]?).*");
        regexEvalMeta.setMatcher("field1");
        regexEvalMeta.setResultFieldName("res");
        regexEvalMeta.setAllowCaptureGroupsFlag(true);
        
        regexEvalMeta.allocate(4);
        
        regexEvalMeta.getFieldName()[0] = "cap";
        regexEvalMeta.getFieldType()[0] = ValueMeta.TYPE_STRING;
        
        regexEvalMeta.getFieldName()[1] = "capIfNull";
        regexEvalMeta.getFieldType()[1] = ValueMeta.TYPE_STRING;
        regexEvalMeta.getFieldIfNull()[1] = "x";
        
        regexEvalMeta.getFieldName()[2] = "capNullIf";
        regexEvalMeta.getFieldType()[2] = ValueMeta.TYPE_STRING;
        regexEvalMeta.getFieldNullIf()[2] = "1";
        
        regexEvalMeta.getFieldName()[3] = "capIfNullNullIf";
        regexEvalMeta.getFieldType()[3] = ValueMeta.TYPE_INTEGER;
        regexEvalMeta.getFieldIfNull()[3] = "0";
        regexEvalMeta.getFieldNullIf()[3] = "B";
        
        StepMeta injectorStep = createInjectorStepForTrans("injector step", transMeta);
        StepMeta dummyStep = createConnectedDummyStepForTrans("dummy step", transMeta, injectorStep);
        StepMeta regexEvalStep = createConnectedStepForTrans("regexeval step", regexEvalMeta, transMeta, dummyStep);

        Trans trans = new Trans(transMeta);
        trans.prepareExecution(null);
               
        RowProducer rp = trans.addRowProducer(injectorStep.getName(), 0);
        RowStepCollector rc = new RowStepCollector();
        trans.getStepInterface(regexEvalStep.getName(), 0).addRowListener(rc);

        trans.startThreads();
        
        feedSourceRows(rp, createSourceData());

        trans.waitUntilFinished();   
        
        checkRows(createResultData3(), rc.getRowsWritten());
    }
}

After Change



    public void testRegexEval3() throws Exception
    {
        String regexStepName = "regexeval";
        RegexEvalMeta regexEvalMeta = new RegexEvalMeta();
        
        regexEvalMeta.setScript("((a)|([A1]))([B2]?).*");
        regexEvalMeta.setMatcher("field1");
        regexEvalMeta.setResultFieldName("res");
        regexEvalMeta.setAllowCaptureGroupsFlag(true);
        
        regexEvalMeta.allocate(4);
        
        regexEvalMeta.getFieldName()[0] = "cap";
        regexEvalMeta.getFieldType()[0] = ValueMeta.TYPE_STRING;
        
        regexEvalMeta.getFieldName()[1] = "capIfNull";
        regexEvalMeta.getFieldType()[1] = ValueMeta.TYPE_STRING;
        regexEvalMeta.getFieldIfNull()[1] = "x";
        
        regexEvalMeta.getFieldName()[2] = "capNullIf";
        regexEvalMeta.getFieldType()[2] = ValueMeta.TYPE_STRING;
        regexEvalMeta.getFieldNullIf()[2] = "1";
        
        regexEvalMeta.getFieldName()[3] = "capIfNullNullIf";
        regexEvalMeta.getFieldType()[3] = ValueMeta.TYPE_INTEGER;
        regexEvalMeta.getFieldIfNull()[3] = "0";
        regexEvalMeta.getFieldNullIf()[3] = "B";
        
        TransMeta transMeta = TransTestFactory.generateTestTransformation(new Variables(), regexEvalMeta, regexStepName);
        
        // Now execute the transformation and get the result from the dummy step.
        //
        List<RowMetaAndData> result = TransTestFactory.executeTestTransformation
                (
                    transMeta, 
                    TransTestFactory.INJECTOR_STEPNAME, 
                    regexStepName, 
                    TransTestFactory.DUMMY_STEPNAME, 
                    createSourceData()
                );

        checkRows(createResultData3(), result);
    }